草庐IT

Android AsyncTask 内存泄漏

全部标签

java - JVM 内存问题

请帮我解决一个问题。我的CentOS有4GBRAM,Tomcat配置有大约1500MB内存。在某些时候,当我的机器达到配置的最大线程数(即200)时,它会挂起。我们必须重新启动应用程序服务器才能使其再次运行。参数是:JAVA_OPTS="-server-Xss128k-Xms2048m-Xmx2048m-XX:MaxPermSize=512m-XX:NewRatio=3-XX:SurvivorRatio=6-XX:+UseConcMarkSweepGC-XX:+CMSIncrementalMode-XX:CMSInitiatingOccupancyFraction=80-Dfile.e

JavaFX - 加载图像和内存问题

我在将图像加载到我的应用程序时遇到了问题。我正在尝试制作一个简单的图像浏览器。在左边我有一个文件夹列表。单击列表中的文件夹名称后,图像应出现在右侧(流程Pane)。每个图像都在一个带边框的HBox中。但是我很快就遇到这样的错误:java.lang.outofmemoryerrorjavaheapspace我查看了任务管理器-如果我只加载6张照片,应用程序会占用500MB的内存!还有一件事-如果我更改列表中的文件夹,内存仍然被占用。在选择另一个文件夹时,我正在创建新的flowPaneflowPane=newFlowPane();所以旧的包含所有ImageView的应该被垃圾收集器删除,对

java - 为什么会出现堆内存不足异常?

我正在尝试分配一个大矩阵(大约10GB)。我正在使用64位JVM开发64位机器。然后我的进程应该有可用的2^64字节并且我已经将JVM堆大小设置为128G(如果这很重要,我的机器中有16GB的RAM)。我的理解是我应该从操作系统获取内存,不需要的矩阵单元将被操作系统换出。但是我遇到了上述异常。编辑:这就是我定义矩阵的方式:Jama.MatrixA=newMatrix(num_words,num_documents);其中num_words大约为100k,num_documents大约为35k。另外值得一提的是类型是double编辑2:相关标志:-Xms40m-Xmx128g-d64

java - 内存管理递归Java

我正在使用大型ArrayList在Java中输入递归。在一个递归步骤中,我将这个列表分成两个列表,每个列表大小减半,并对两个列表递归地应用相同的方法。但是,由于拆分后我不再需要大列表,因此我想将其从内存中删除。在这里搜索了一段时间后,我想到了这个:publicsome_objectrecursiveMethod(ArrayListlarge_List){//ComputethetwosublistsArrayListlower_half=lowerHalf(large_List);ArrayListupper_half=upperHalf(large_List);//Deletelar

java - 在 map 中存储大量字符串的最有效内存方法是什么?

我想在Map中存储大量字符串,所以MagicObjects可以快速访问。此Map的条目太多,内存已成为瓶颈。假设MagicObjects无法优化,对于这种情况,我可以使用的最有效的map类型是什么?我目前正在使用以下内容:gnu.trove.map.hash.TCustomHashMap 最佳答案 如果您的key足够长并且有很多足够长的通用前缀,那么您可以使用trie来节省内存。(前缀树)数据结构。thisquestion的答案指向trie的几个Java实现。 关于java-在map中存

java - 如何减少 HashMap<String, Integer> 类数据结构的内存使用

在开始解释我的问题之前,我应该说明我不是在寻找增加Java堆内存的方法。我应该严格存储这些对象。我正在努力将大量(5-10GB)的DNA序列及其计数(整数)存储在哈希表中。DNA序列(长度不超过32)由“A”、“C”、“G”、“T”和“N”(未定义)字符组成。众所周知,当在内存中存储大量对象时,与C和C++等低级语言相比,Java的空间效率较差。因此,如果我将此序列存储为字符串(对于长度约为30的序列,它占用大约100MB的内存),我会看到错误。我试图将核酸表示为“A”=00、“C”=01、“G”=10、“T”=11并忽略“N”(因为它破坏了char到2位转换为第5种酸)。然后,将这些

java - 类管理自己的内存

EffectiveJava:第6条:消除过时的对象引用。Generallyspeaking,wheneveraclassmanagesitsownmemory,theprogrammershouldbealertformemoryleaks.Wheneveranelementisfreed,anyobjectreferencescontainedintheelementshouldbenulledout.我认为我没有完全理解描述。管理自己内存的类的示例有哪些-我可以想到数组、列表,也许还有映射。谁能更详细地解释书中的项目?谢谢 最佳答案

java - 令人困惑的Tomcat持久 session 内存配置文件

与任何内存管理问题一样,这是一个很长的故事,所以请牢牢捕获。我们的应用程序遇到了一些内存管理问题,因此,我一直在尝试对该应用程序进行概要分析,以了解问题出在哪里。我今天早些时候看到了这个线程:TomcatSessionEvictiontoAvoidOutOfMemoryError……似乎跟我在探查器中看到的一样。基本上,如果我用Jmeter吸引了一群用户使用该应用程序,它将长时间保留在堆内存上,最终直到session开始过期为止。但是,与该线程中的发布者不同,我拥有源代码,并且可以尝试使用Tomcat来实现持久状态session,这是我今天一直在尝试的工作,但取得的成功有限。我认为这是

Java 正在分配额外的 2gb 内存

我有一个新的VPS来运行我和一些伙伴制作的一些java程序。我用这样一行开始这个过程:java-Xmx512M-jarprogram.jar在我们的旧VPS上,您可以使用“top”命令查看使用了多少虚拟内存和常驻内存。它会使用600-700mb的虚拟内存。现在在我们的新VPS上,使用相同的命令,虚拟内存似乎总是比-Xmx值多~2gb。因此,虚拟内存不是大约600-700mb,而是2700-3000mb。旧的VPS运行CentOS5.7,新的运行CentOS6.2。两者都运行JRE1.7u364位。为什么会这样,我该如何解决?编辑:顶部PIDUSERPRNIVIRTRESSHRS%CPU

java - 如何减少JVM虚拟内存的使用?

我有一个Java程序可以在具有2GB物理内存和2GB交换空间的Solaris10X86上运行。该程序在Linux64位上运行良好,仅占用约450MB内存。但是当它在Solaris中运行时,它总是报告OutOfMemoryError,我注意到就在错误发生之前,它试图使用>4GB的虚拟内存,这在32位系统上是绝对不可能的。那么为什么JVM会尝试使用那么多的虚拟内存呢?有没有办法告诉JVM不要使用那么多虚拟内存?谢谢。编辑:谢谢大家的意见!这是完整的错误消息:##ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.#